package com.njts.programming;

import java.util.Random;
import java.util.Scanner;

/**
 * @author David GE
 * Date  2025/11/17
 * 个大V直播时发起了抢红包活动，分别有：9、666、188、520、99999五个红包。请模拟粉丝来抽奖，按照先来先得，
 * 随机抽取，抽完即止，注意：一个红包只能被抽一次，先抽或后抽哪一个红包是随机的，示例如下（不一定是下面的顺序）
 */
public class RedPocket {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //准备五个红包
        int[] pockects = {9,666,188,520,99999};
        // 存放已经抢走的红包(默认每个红包都没有被抢走 false)
        boolean [] delivered=new boolean[5];

        for (int i = 0; i < 5; i++) {
            System.out.println("请输入任意键抽奖");
            String next = scanner.next();
            // 随机发红包
            int res = deliverPocket(pockects, delivered);
            System.out.println("恭喜您,抽中了。"+res);
        }
        // 循环结束,
        System.out.println("活动结束....");

    }

    /**
     *
     * @param pocket 待随机的红包数组
     * @param delivered 标记对应下标的红包是否被抢了
     * @return 红包的数额
     */
    public static int deliverPocket(int [] pocket,boolean[] delivered){
        // 生成随机数
        Random random = new Random();
        int index = random.nextInt(5);
        // 利用while循环和状态判断当前的红包有没有抢走,如果抢过,重新生成新的随机数
        while (delivered[index]){
            index = random.nextInt(5);
        }
        // 标记delivered数组,将抽到的红包的下标对应状态标记为true
        delivered[index]=true;
        return  pocket[index];

    }
}
